/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.mx.saco.entity;

import java.io.Serializable;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 *
 * @author jethro.gutierrez
 */
@Entity
@Table(name = "tt_unidad_habitacional")
@NamedQueries({
    @NamedQuery(name = "UnidadHabitacional.findAll", query = "SELECT u FROM UnidadHabitacional u"),
    @NamedQuery(name = "UnidadHabitacional.findByIdUnidadHabitacional", query = "SELECT u FROM UnidadHabitacional u WHERE u.idUnidadHabitacional = :idUnidadHabitacional"),
    @NamedQuery(name = "UnidadHabitacional.findByDireccionCorta", query = "SELECT u FROM UnidadHabitacional u WHERE u.direccionCorta = :direccionCorta"),
    @NamedQuery(name = "UnidadHabitacional.findByNumeroDeptos", query = "SELECT u FROM UnidadHabitacional u WHERE u.numeroDeptos = :numeroDeptos"),
    @NamedQuery(name = "UnidadHabitacional.findByNombreUnidad", query = "SELECT u FROM UnidadHabitacional u WHERE u.nombreUnidad = :nombreUnidad"),
    @NamedQuery(name = "UnidadHabitacional.findByIdEstatus", query = "SELECT u FROM UnidadHabitacional u WHERE u.idEstatus = :idEstatus")})
public class UnidadHabitacional implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "id_unidad_habitacional")
    private Integer idUnidadHabitacional;
    @Column(name = "direccion_corta")
    private String direccionCorta;
    @Column(name = "numero_deptos")
    private Integer numeroDeptos;
    @Column(name = "nombre_unidad")
    private String nombreUnidad;
    @Basic(optional = false)
    @Column(name = "id_estatus")
    private int idEstatus;
    @ManyToMany(mappedBy = "unidadHabitacionalList")
    private List<Usuario> usuarioList;
    @OneToMany(mappedBy = "idUnidadHabitacional")
    private List<Departamento> departamentoList;
    @OneToMany(mappedBy = "idUnidadHabitacional")
    private List<Concepto> conceptoList;

    public UnidadHabitacional() {
    }

    public UnidadHabitacional(Integer idUnidadHabitacional) {
        this.idUnidadHabitacional = idUnidadHabitacional;
    }

    public UnidadHabitacional(Integer idUnidadHabitacional, int idEstatus) {
        this.idUnidadHabitacional = idUnidadHabitacional;
        this.idEstatus = idEstatus;
    }

    public Integer getIdUnidadHabitacional() {
        return idUnidadHabitacional;
    }

    public void setIdUnidadHabitacional(Integer idUnidadHabitacional) {
        this.idUnidadHabitacional = idUnidadHabitacional;
    }

    public String getDireccionCorta() {
        return direccionCorta;
    }

    public void setDireccionCorta(String direccionCorta) {
        this.direccionCorta = direccionCorta;
    }

    public Integer getNumeroDeptos() {
        return numeroDeptos;
    }

    public void setNumeroDeptos(Integer numeroDeptos) {
        this.numeroDeptos = numeroDeptos;
    }

    public String getNombreUnidad() {
        return nombreUnidad;
    }

    public void setNombreUnidad(String nombreUnidad) {
        this.nombreUnidad = nombreUnidad;
    }

    public int getIdEstatus() {
        return idEstatus;
    }

    public void setIdEstatus(int idEstatus) {
        this.idEstatus = idEstatus;
    }

    public List<Usuario> getUsuarioList() {
        return usuarioList;
    }

    public void setUsuarioList(List<Usuario> usuarioList) {
        this.usuarioList = usuarioList;
    }

    public List<Departamento> getDepartamentoList() {
        return departamentoList;
    }

    public void setDepartamentoList(List<Departamento> departamentoList) {
        this.departamentoList = departamentoList;
    }

    public List<Concepto> getConceptoList() {
        return conceptoList;
    }

    public void setConceptoList(List<Concepto> conceptoList) {
        this.conceptoList = conceptoList;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idUnidadHabitacional != null ? idUnidadHabitacional.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof UnidadHabitacional)) {
            return false;
        }
        UnidadHabitacional other = (UnidadHabitacional) object;
        if ((this.idUnidadHabitacional == null && other.idUnidadHabitacional != null) || (this.idUnidadHabitacional != null && !this.idUnidadHabitacional.equals(other.idUnidadHabitacional))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.mx.saco.entity.UnidadHabitacional[ idUnidadHabitacional=" + idUnidadHabitacional + " ]";
    }
    
}
